/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.siteEncheres.client.utilisateur;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;

import com.gwtext.client.widgets.MessageBox;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.form.Label;
import com.gwtext.client.widgets.layout.VerticalLayout;
import domain.Utilisateur;

/**
 * @author Damador
 */
public class IhmUtilisateurConnecte extends Panel {

    Button btn = new Button("Se deconnecter");
    String prenomUser;
    AsyncCallback<Utilisateur> callBackUtilisateur = new AsyncCallback<Utilisateur>() {

        @Override
        public void onFailure(Throwable caught) {
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override 
        public void onSuccess(Utilisateur userFromCallBack) {
            prenomUser = userFromCallBack.getPrenom();
        }
    };
    
    final AsyncCallback callback = new AsyncCallback() {

        @Override
        public void onSuccess(Object result) {
            History.newItem("Deconnexion");
        }
        
        @Override
        public void onFailure(Throwable caught) {            
            MessageBox.alert(caught.getMessage());
        }
    };
    
    public IhmUtilisateurConnecte() {
        
        getService().getUtilisateurEnCours(callBackUtilisateur);
        
        setStyleName("ihmUtilisateurConnecte");
        setBorder(false);  
        setPaddings(10);
        setFrame(true);
        setLayout(new VerticalLayout(10));
        
        Panel pLbl = new Panel();
        
        Window.alert("Bonjour, merci de vous être connecté.");
        pLbl.add(new Label("Bonjour "+prenomUser));
        
        add(pLbl);
        add(btn);
        
        btn.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent w) {
                getService().deconnecterUtilisateur(callback);
            }
        });
    }
    
    public static GwtUtilisateurAsync getService() {
        return GWT.create(GwtUtilisateur.class);
    }
}
